.preflight-job-base:
  stage: preflight
  extends:
    - .default-retry
  needs: []

.qa-preflight-job:
  image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-2.3-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}
  extends:
    - .preflight-job-base
    - .qa-cache
  variables:
    USE_BUNDLE_INSTALL: "false"
    SETUP_DB: "false"
  before_script:
    - !reference [.default-before_script, before_script]
    - cd qa && bundle install

.rails-production-server-boot:
  extends:
    - .preflight-job-base
    - .default-before_script
    - .production
    - .ruby-cache
    - .preflight:rules:rails-production-server-boot
    - .use-pg13

# Test the puma configuration present in `config/puma.rb.example`
rails-production-server-boot-puma-example:
  extends:
    - .rails-production-server-boot
  script:
    - cp config/puma.rb.example config/puma.rb
    - sed --in-place "s:/home/git/gitlab:${PWD}:" config/puma.rb
    - echo 'bind "tcp://127.0.0.1:3000"' >> config/puma.rb
    - bundle exec puma --environment production --config config/puma.rb &
    - sleep 40  # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114124#note_1309506358
    - retry_times_sleep 10 5 "curl http://127.0.0.1:3000"
    - kill $(jobs -p)

# Test the puma configuration present in
# https://gitlab.com/gitlab-org/build/CNG/-/raw/master/gitlab-webservice/configuration/puma.rb
rails-production-server-boot-puma-cng:
  extends:
    - .rails-production-server-boot
  script:
    - curl --silent https://gitlab.com/gitlab-org/build/CNG/-/raw/master/gitlab-webservice/configuration/puma.rb > config/puma.rb
    - sed --in-place "s:/srv/gitlab:${PWD}:" config/puma.rb
    - bundle exec puma --environment production --config config/puma.rb &
    - sleep 40  # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114124#note_1309506358
    - retry_times_sleep 10 5 "curl http://127.0.0.1:8080"
    - kill $(jobs -p)

no-ee-check:
  extends:
    - .preflight-job-base
    - .preflight:rules:no-ee-check
  script:
    - scripts/no-dir-check ee

no-jh-check:
  extends:
    - .preflight-job-base
    - .preflight:rules:no-jh-check
  script:
    - scripts/no-dir-check jh

qa:selectors:
  extends:
    - .qa-preflight-job
    - .qa:rules:ee-and-foss
  script:
    - bundle exec bin/qa Test::Sanity::Selectors

qa:selectors-as-if-foss:
  extends:
    - qa:selectors
    - .qa:rules:as-if-foss
    - .as-if-foss
